# 定义一个空列表，用来存放学生信息
student_list = []
def mean():
    print("  ================================================================")
    print("欢迎使用学生信息管理系统")
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.查询学生信息")
    print("5.学生成绩统计")
    print("6.退出系统")
    print("  ===============================================================")

def addstudent():
    # 声明使用全局变量student_list
    global student_list
    print("添加学生信息")
    uid = input("请输入学生的学号：")
    name = input("请输入学生的姓名：")
    sex = input("请输入学生的性别：")
    yuwen = float(input("请输入语文成绩： "))
    shuxue = float(input("请输入数学成成绩： "))
    yingyu = float(input("请输入英语成成绩 ："))
    # 对数据进行验证，验证学号是否重复
    for i in student_list:
        # 如果重复
        if i['uid'] == uid:
            print("学号已存在")
            break
    else:
        # 将学生的信息添加到student_list列表
        student_info = {'uid':uid,'name': name, 'sex': sex, 'yuwen': yuwen, 'shuxue': shuxue, 'yingyu': yingyu}
        # 打印添加的学生信息
        print(student_info)
        # print("学号：%s" % uid, "姓名：%s" % name, "性别%s" % sex,
        #       "语文成绩：%.2f,语文成绩：%.2f,语文成绩：%.2f" % (yuwen, shuxue, yingyu))
        # student_list[uid] = student_info
        student_list.append(student_info)
        print("总成绩为：%.2f" % (yuwen+shuxue+yingyu))
        avg_student = (yuwen+shuxue+yingyu)/3
        print("平均成绩为：%.2f" % avg_student)
        print("添加成功")
def delstudent():
    print("删除学生信息")
    # 根据学号删除信息
    uid = input("请输入要删除学生的学号：")
    # 遍历列表
    for student in student_list:
        # 如果找到学生信息
        if student['uid'] == uid:
            #删除学生
            student_list.remove(student)
            print(f"已删除{uid}学生信息")
    else:
        # 否则学生信息不存在
        print(f"{uid}学生信息未保存")

def updatestudent():
    print("修改学生信息")
    #根据学号来修改
    uid = input("请输入你要修改的学生学号：")
    # 遍历列表
    for student in student_list:
        # 如果找到输入的学号
        if student['uid'] == uid:
            # 修改信息
            student['uid'] = input("请输入修改后的学生学号：")
            student['name'] = input("请输入修改后的学生姓名：")
            student['sex'] = input("请输入修改后的学生性别：")
            student['yuwen'] = float(input("请输入修改后的学生语文成绩："))
            student['shuxue'] = float(input("请输入修改后的学生数学成绩："))
            student['yingyu'] = float(input("请输入修改后的学生英语成绩："))
            print("该学生的信息已更新为：学号：%s" % student['uid'], "\n姓名：%s" % student['name'], "\n性别：%s" % student['sex'],
                  "\n语文成绩：%.2f\n数学成绩：%.2f\n英语成绩：%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            # print("该学生信息已更新为：学号：{}，姓名：{}，性别：{}，语文成绩：{}，数学成绩：{}，英语成绩：{}".format(student["uid"],student["name"], student["sex"], student["yuwen"],student["shuxue"],student["yingyu"]))
    else:
        # 否则，输入有误
        print(f"输入有误，没用找到{uid}学生信息")
def selectstudent():
    print("查询学生信息")
    # global student_list
    # 根据学号进行查找
    select = input("请输入你要查询学生的学号：")
    # 遍历列表，查找对应信息
    for student in student_list:
        #如果找到用户输入的学号
        if student['uid'] == select:
            # 输出查询的信息
            print("学号：%s" % student['uid'], "\n姓名：%s" % student['name'], "\n性别：%s" % student['sex'],
                  "\n语文成绩：%.2f\n数学成绩：%.2f\n英语成绩：%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            # print("学号：{}\n姓名：{}\n性别：{}\n语文成绩：{}\n数学成绩：{}\n英语成绩：{}"
            #       .format(student["uid"],student["name"], student["sex"], student["yuwen"],student["shuxue"],student["yingyu"]))
            break
    else:
        # 跳出循环表示学号不存在
        print(f"学号为{select}的学生信息未保存")
    #         print("学号：%s 姓名：%s 性别：%s 语文成绩：%s 数学成绩：%s 英语成绩：%s"
    #               %(uid, value['name'], value['sex'], value['yuwen'], value['shuxue'], value['yingyu']))
    # print("学号：%s" % uid, "姓名：%s" % name, "性别%s" % sex,"语文成绩：%.2f,语文成绩：%.2f,语文成绩：%.2f" % (yuwen, shuxue, yingyu))

def allstudent():
    print("学生成绩统计")
    # 根据学号统计
    uid = input("请输入要统计的学生学号：")
    # 遍历列表
    for student in student_list:
        # 如果输入学号存在
        if student['uid'] == uid:
            # 统计学生成绩
            print("学生成绩\n语文成绩：%.2f\n数学成绩：%.2f\n英语成绩：%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            print("总成绩为：%.2f" % (student['yuwen'] + student['shuxue'] + student['yingyu']))
            avg_student = (student['yuwen'] + student['shuxue'] + student['yingyu']) / 3
            print("平均成绩为：%.2f" % avg_student)
            break
    else:
        print(f"{uid}学生信息未保存")

def main():
    while True:
        mean()
        num = input("请输入：")
        if num == "1":
            addstudent()
        elif num == "2":
            delstudent()
        elif num == "3":
            updatestudent()
        elif num == "4":
            selectstudent()
        elif num == "5":
            allstudent()
        elif num == "6":
            print("退出系统")
            break
        else:
            print("你的输入有错误")

main()